<?php

class Nuo_Menu_Render_Config
{

	public function render($data, $level)
	{
		$items = array();

		if ($level == 0)
		{
			$items = isset($data['items']) ? $data['items'] : array();
		}
		else
		{
			$items = $data;
		}

		if (empty($items))
		{
			return '';
		}

		$xhtml = array();

		foreach ($items as $item)
		{
			try
			{
				if (isset($item['items']) && $item['items'])
				{
					$sub = $this -> render($item['items'], $level + 1);
				}

				$xhtml[] = $this -> render($item, $sub);
			}
			catch(Exception $e)
			{
				Nuo_Log::instance()->write($e -> getMessage());
			}
		}

		$xhtml = sprintf('<ul class="editAdminMenu">%s</ul>', implode(PHP_EOL, $xhtml));

		return $xhtml;
	}

	/**
	 * @return html
	 */
	public function renderItem($item, $sub)
	{
		return sprintf('<li>%s [ <a href="%s">edit</a> - <a href="%s">remove</a> ]%s</li>', $item['label'], Nuo::getUrl('admincp/menu/item/edit', array('item_id' => $item['item_id'])), Nuo::getUrl('admincp/menu/item/delete', array('item_id' => $item['item_id'])), $sub);
	}

}
